<?php
/**************************************************************
 * 后台管理系统入口文件
 * 建议后台的大部分功能控制器都继承 admin 基础控制器
 * 来实现一些全局的基础功能，如 : 登录检查、权限、等后台开发常用的功能
 * @version   1.2.0
 *************************************************************/

class indexController extends adminController{

    public function index (){
        // 通过adminController基础函数查询当前用户所有的菜单权限
       $role = $this->CurrentRoles;
        if($role){
            $role['role_content'] = $role['role_content'] ? json_decode($role['role_content'],true):[];
        }
        //  当前权限菜单有
        if($role['role_content']){
            // 左侧显示的菜单 要非隐藏，且未被禁用的
            $where = 'mid in('.implode(',',$role['role_content']).') ';
            $menuModel = model("menu");
             $menus = $menuModel->getlistwhere($where);

            //整理为以mid为索引的数组
            $menuArr = [];
            foreach ($menus as $k  => $v ) {
                $menuArr[$v['mid']] = $v;
            }
            $menuArrange =$this->gettreeitems($menuArr);
            // 将当前用户的所有角色权限 和对应的角色拥有权限的菜单都传到前台
            $this->IndexControlData['menus'] = $menuArrange;
            $this->IndexControlData['role'] = $role;
        }
    }

    private function gettreeitems($items){
        $tree = [];
        foreach ($items as $item) {
            if(isset($items[$item['pid']])){
                $items[$item['pid']]['children'][] = &$items[$item['mid']];
            }else{
                $tree[] = &$items[$item['mid']];
            }
        }
        return $tree;
    }

    /**
     * 欢迎界面
     */
    public function welcome()
    {
        //  加载模型
        $this->userModel     =  model("manager");
        //当前登录的用户ID
        $this->managerID     =  getSession("id");
        //获取服务器信息
        $this->info = phpGrace\tools\server::info();
        //通过缓存查询当前用户登录信息 $this->UsreLoginLog 为返回变量
        $this->userLog = $this->cache('UsreLoginLog', '_id_'.$this->managerID, '__getLoginData');
        //mysql版本
        $this->mysqlVersion =  $this->userModel->getMysqlVersion();
        // 获取登录日志信息
        $LoginLogModel =  model("loginlog");
        $this->loginlog = $LoginLogModel->getAllList();
        $this->loginlog['count'] = $LoginLogModel->count();
    }
    /**
     * 返回当前用户的登录信息
     * @return 返回数组
     */
    public function __getLoginData(){
        return  $this->userModel->getLoginDataByManageID($this->managerID);
    }



}